“异鬼Ⅱ”Bootkit木马详细分析
下载站的高速下载器一直是恶意木马大规模传播的温床,前段时间的暗云Ⅲ木马通过高速下载器传播推广,感染机器数高达数百万台。近期,腾讯电脑管家又拦截到了一个通过高速下载器大范围传播的恶性Bootkit木马——异鬼Ⅱ,令人吃惊的是这个恶意VBR的植入者,居然是一款比较知名的软件——甜椒刷机。
正因为开发者是正规的软件公司,软件上打了官方的数字签名,不少安全厂商将其加入白名单中,导致大量机器感染。
◆ 该木马主要有以下特点:
1. 正规软件携带恶意代码:异鬼Ⅱ隐藏在正规软件中,带有官方数字签名,导致大量安全厂商直接放行。
2. 影响范围广:通过国内几大知名下载站的高速下载器推广,并且异鬼Ⅱ能够兼容xp、win7、win10等主流操作系统,影响数百万台用户机器。
3. 云控、灵活作恶:木马的VBR感染模块,以及最终实际作恶的模块均由云端下发,作者可任意下发功能模块到受害者电脑执行任意恶意行为,目前下发的主要是篡改浏览器主页、劫持导航网站、后台刷流量等。
4. 隐蔽性强、顽固性强:通过感染VBR长期驻留在系统中,普通的重装系统无法清除木马;异鬼Ⅱ还通过底层磁盘钩子守护恶意VBR,对抗杀软查杀。
(更多“异鬼”资料查看http://tav.qq.com/index/newsDetail/255.html)
一、甜椒刷机通过下载器静默推广传播,云控篡改VBR
近期,甜椒刷机通过各大网站高速下载器疯狂静默推广,该版本的甜椒看似刷机软件,实则为恶性木马。异鬼Ⅱ隐藏了能够拉起云端恶意代码的后门,一旦运行,会从云端下载VBR感染模块感染电脑VBR,即使用户重装系统,也无法清除。
该版本甜椒刷机与官方http://www.onekeyrom.com/index.html最新版版本不同,应该是一个支线版本,但和官网的安装包用的是同一个数字证书签名,且木马使用的C&C服务器与其官方软件所用服务器一致。
1. 安装包行为
1) 运行后安装包首先会判断自身文件名中是否包含“20174”字符,如果包含则开始静默安装并在注册表、互斥量上做标记,准备感染。
创建名为SamRootDetect的互斥量,创建HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{FC70EFDD-2741-495C-9A93-42408F6878D9}\un注册表键值。
释放所有安装文件到指定目录后,运行主程序TJShuaji.exe,并Sleep 20秒,TJShuaji.exe启动后会检测互斥量,检测到才进行感染,所以必须在20秒内启动。
2. TJShuaji.exe行为
1) 检测是否存在名为SamRootDetect或者OdinDetect的互斥量,或者命令行中是否包含有以上字符串。若是,则设立感染标志。
2)满足以上条件,则设立感染标志。
3)判断感染标志,创建线程进行感染行为。
4)在线程中判断注册表否存在{FC70EFDD-2741-495C-9A93-42408F6878D9}\un键值(母体创建),以及是否存在{FC70EFDD-2741-495C-9A93-42408F6878D9}\ex键值(感染后会设置,防止重复感染)。
5)满足以上条件后,访问以下URL,根据操作系统版本信息等下载数据,
http://bd.705151.com/clientapi/clientreport.ashx?u=%d&pc=%s&os=%d&sid=%d
其中u为注册表un键值,pc为mac、cpuid等硬件信息的hash值,sid写死为10,os为32或64。
6)提交信息后,服务器根据上传的版本信息重定向到不同的URL返回下载结果。
32位:http://npic.shangfx.com/42c/43/6/a07/31a2d803.wav
64位:http://cache.yzrub.com/842/99/bb26/a2087bb.wav
文件下载回来后,解密并用zlib解压后在内存中加载执行,以下将其称作installdll.dll
3. installdll.dll行为
该文件pdb路径与VBR中的木马PDB路径一致,可以确定为同一伙人开发。
1)判断指定进程下是否有甜椒刷机安装包程序,以确定自己是否为被指定的程序推广安装,若否,则退出,不会进行感染。此外,如果注册表存在\duowan\YYExplorer等路径,即便没有找到相关文件也会进行感染。
2)检测进程列表中的进程名是否包含有smsniff、Wireshark、Dbgview、Procmon、procexp、OLLYDBG、regshot、ProcessHacker、idaq、devenv等字符,有则退出。
3)检测进程中是否有SbieDll.dll、api_log.dll、dir_watch.dll、SXIn.dll模块,有则退出。
5) 感染相关的代码在dll中,木马会在内存中展开感染模块并加载执行,以下将其称为infect.dll,该dll提供两个导出函数,一个为BkInstall、BkTryWriteDisk,分别对应直接应用层写磁盘和通过驱动写磁盘的功能。此外,该dll有两个版本,分别对应win10操作系统和其他windows操作系统。如果要调用BkTryWriteDisk,则会先释放驱动到driver目录下并加载。
4. infect.dll行为
1)BkInstall,该函数直接打开磁盘写入木马。
2)BkTryWriteDisk,与\\.\{28F28D04-F525-fd5d-87197-C7A95250BCE2}设备进行通信,将要写入的内容和地址传给该设备进行磁盘写操作。
5. WriteDiskBySys.sys行为
该驱动加了VMP,从其老版本以及pdb信息和应用层的调用方式分析,可知该驱动会创建名为{28F28D04-F525-fd5d-87197-C7A95250BCE2}的设备,供应用层调用,主要实现向指定磁盘位置写入数据的功能。
二、从VBR进入内核
该恶意的VBR是基于著名的网银木马Carberp的泄漏源码修改而来的,从VBR起一路hook到进入windows内核。
1. VBR行为
由VBR到windows内核的启动过程见http://tav.qq.com/index/newsDetail/255.html,下图所示为被感染后的VBR数据。恶意VBR代码实现解密并加载磁盘尾部的palyload数据到windows内核中得到dump_diskfs.sys并执行。
2. dump_diskfs.sys行为
1)加载的内核驱动不会落地,驱动名字为dump_diskfs.sys。与系统中的几个正常驱动名字非常相近,并且同样不会落地,因此具有很大的迷惑性。
2)从playload数据中解压出一个应用层dll,将其保存到C:\\Windows\\system32\\usbsapi.dll
payload数据:
3)将解压出来的dll注入usbapi.dll到应用层:注册LoadImageNotifyRoutine回调,将usbapi.dll注入到explorer.exe,services.exe,spoolsv.exe,注入的方式是在目标进程的导入表中添加usbapi.dll为新的导入项。
4) 向explorer.exe,services.exe,spoolsv.exe注入完成后的清理工作,注入完成后,驱动会删除LoadImageNotifyRoutine,并且强制删除usbsapi.dll,同时将正常的usbmon.dll拷贝重命名为usbsapi.dll。此外,驱动还会修改usbsapi.dll的时间属性为过去的某一固定时间,以迷惑安全分析人员。
5)hook磁盘驱动保护VBR。直接hook了磁盘驱动中的IRP_MJ_INTERNAL_DEVICE_CONTROL派遣函数。对写VBR区域的操作不做操作,只返回一个错误码。
三、插入到应用层的usbsapi.dll行为
1. usbsapi.dll行为
内存中展开一个dll,并将其加载,以下将其命名为injectdll_mini.dll
2. injectdll_mini.dll行为
injectdll_mini.dll主要实现内存加载。
1)线程1——加载插件:查找指定目录下的wav文件,提取尾部数据,用zlib解压出一个PE文件,在内存中展开,三个进程加载的文件路径不同(文件名根据进程信息计算得来)。
插件保存目录如下:
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Media(services、spoolsv)
C:\Users\{USERNAME}\AppData\Local\Microsoft\Media(explorer)
2)线程2——下载插件:连接C&C,往iqp.sjime.com的upd 8000端口发送包含当前进程信息的数据,接收并解密服务器返回的数据,从数据中解密提取要下载的url地址,从相关url地址下载wav文件到指定目录。如果失败,则6分钟后尝试备用域名buu.211360.com,不过当前两个域名都指向同一ip地址。
分析时,服务器返回的插件下载地址分别为:(spoolsv大部分不返回数据)
services.exe (svcdll64.dll)(http://932.kjwkn.com/uploads/wid/201704/1914595972.wav)
explorer.exe (NewLockWebEx.dll)(http://ju58.tswzsh.com/a26/5e3/f51f/74/8f0a8f6.wav)
下载成功的wav文件会保存到以下目录。
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Media
C:\Users\{USERNAME}\AppData\Local\Microsoft\Media
四、恶意插件行为分析
1. explorer.exe (NewLockWebEx.dll)行为
该插件的行为主要是通过修改注册表、通过修改浏览器配置信息、通过修改浏览器缓存中的导航网站cookie等方式来实现主页推广劫持。
2. services.exe (svcdll64.dll)行为
该插件通过修改host文件、强删安全软件配置文件、修改浏览器配置文件来实现锁主页,此外,会连C&C定时上报信息。
1)加载驱动,强制删除安全软件配置文件。
2)修改host文件,用于劫持sougou导航。
3)修改多款浏览器的主页配置信息。
pdb:
4)与C&C进行通信,10分钟上报一次状态信息(系统版本,杀软情况等)。
3. spoolsv.exe (printfll264.dll)行为
该插件下载成功率较低,主要功能是刷流量、后台点广告、推广安装软件等。
1)printfll264.dll内置两个模块(printfll264_1,printfll264_2)会注入到傀儡进程中。
修改注册表,设置svchost.exe和rundll32.exe进程使用的ie内核版本,后继会用到这傀儡进程模拟浏览器来刷流量。
2)创建一个32位的svchost.exe傀儡进程,将数据段中的printfll264_1注入到该进程中执行,以下我们将该PE文件命名为DevData.exe
DevData.exe的pdb如下:
其功能为点广告、刷流量。
3)通过UDP连接服务器,返回刷流量的url列表,然后通过模拟浏览器,访问指定的网站刷流量。
4)发现刷的网站都是一些自媒体的专辑视频,点击量很高,但是点赞和评论量为0,明显是刷出来的访问量。
刷流量的链接:http://bowl.jumu8.com/t/bowl.html 跳转到
http://my.tv.sohu.com/pl/9123507/87376056.shtml,中间有一层跳转,方便了作者统计流量。
五、中毒判断
1. 检查电脑以下目录是否存在.wav文件。
C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Media
C:\Users\用户名\AppData\Local\Microsoft\Media
2. 检查是否存在C:\windwos\system32\usbsapi.dll文件。
3. 注册表存在以下键值,说明已感染
HKEY_LOCAL_MACHINE\ Software\Classes\CLSID\{FC70EFDD-2741-495C-9A93-42408F6878D9}\ex 值:1
六、查杀及安全建议
1. 尽量不要通过下载站下载软件,如果一定要用到高速下载器,安装时记得去掉不需要的推荐软件。
2. 由于该木马文件有数字签名,且被大多数安全软件默认为信任,因此多数安全厂商还无法查杀该木马。目前电脑管家已经能够查杀该VBR木马,发现电脑有异常的用户可下载电脑管家进行清理。